<template>
	<view class="content">
		<!-- <button @click="login()">登录</button> -->
		<!-- <button @click="judgeLogin()">验证登录</button> -->
		<button @click="getList()">获取用户数据表</button>
		<view>
			跳转我的进行订阅
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {

			}
		},
		onLoad() {
			this.login();
		},
		methods: {
			getList() {
				// 订阅之后，就得将此用户信息记录下来，方便后续发送订阅消息
				uniCloud.callFunction({
					name: 'getUserList',
					data: {},
					success: (res) => {
						console.log(res.result.data, "查询用户信息列表成功");
						
						// 使用 Set 来存储已经遇到的 openid  
						let seenOpenids = new Set();  
						  
						// 使用 filter 来过滤数组，只保留那些 openid 尚未被添加到 Set 中的元素  
						let uniqueByOpenid = res.result.data.filter(item => {  
						    if (!seenOpenids.has(item.openid)) {  
						        seenOpenids.add(item.openid);  
						        return true;  
						    }  
						    return false;  
						});  
						  
						// 现在 uniqueByOpenid 只包含具有唯一 openid 的元素  
						console.log(uniqueByOpenid);
						let params = {
							thing1: {
								value: "提示"
							},
							thing2: {
								value: "王子睿好好工作！"
							},
							thing3: {
								value: "别划水了~"
							},
							time4: {
								value: "2024年8月6日 15:11:01"
							}
						}
						// 挨个发送订阅消息
						for (let i in uniqueByOpenid) {
							// 订阅之后，就得将此用户信息记录下来，方便后续发送订阅消息
							uniCloud.callFunction({
								name: 'sendMessage',
								data: {
									touser: uniqueByOpenid[i].openid, // 用户的openid
									template_id: 'MHpo_5380HaMDGYPM45YZFMbyMcf9blVm93BFKdwTok', //模板id
									data: params
								},
								success: (res) => {
									console.log(res, "发送订阅消息成功--");
									uni.showToast({
										title: '订阅成功',
										icon: 'success'
									})
								},
								fail: (err) => {
									console.log(err, "发送订阅消息失败")
									uni.showToast({
										title: '订阅失败',
										icon: 'error',
										duration: 2000
									})
								}
							})
						}
					},
					fail: (err) => {
						console.log(err, "查询用户信息失败");
					}
				})
			},
			// 登录
			async login() {
				let res = await uni.login();
				console.log(res.code, "获取code");
				uniCloud.callFunction({
					name: 'Login',
					data: {
						code: res.code
					},
					success(result) {
						console.log(result.result.data[0], "获取用户信息");
						let userInfo = result.result.data[0];
						if (userInfo.openid) {
							uni.setStorageSync('token', userInfo);
							uni.switchTab({
								url: '/pages/index/mine'
							})
						} else {
							uni.showToast({
								title: '你的破手机登陆失败',
								icon: 'none'
							})
						}
					}
				})
			},
			// 验证登录
			async judgeLogin() {
				let res = await this.$httpEvent();
				console.log(res, "登录验证");
			},
		}
	}
</script>

<style>

</style>